发布到 GooglePlay
GooglePlay 平台是很多开发者在海外发布游戏的第一选择。
本文将介绍如何将白鹭引擎开发的游戏通过 Egret Native 发布到 GooglePlay 平台。
发布前期准备
- 科学上网,登录 GooglePlay 需要翻墙
- 一张支持境外支付的 Visa 卡用来支付注册的25美金
- 建议使用最新版 Chrome 浏览器来进行整体的发布流程
打包 Android App
使用 Egret Native 生成一个 Android 项目,在 Android Studio 中发布为 aab 格式,而非 apk 格式
.aab格式为发布 GooglePlay 的专用格式,全名为 Android App Bundle,您可以在 https://developer.android.com/guide/app-bundle/test#generate_apks 上了解更多 aab 格式的内容(需要科学上网)。
如果项目要输出 aab 格式的包,需要满足两个条件:
- Android Studio 3.2 以上版本
- gradle 版本要大于:3.2.1,比如:
classpath 'com.android.tools.build:gradle:3.2.1'
当满足如上设置后,在 Android Studio 中,单击菜单上的 Build -> Generate Signed Bundle / APK
,并在弹出菜单中选择 Android App Bundle 即可。
注册开发者账号
注册并登陆 GooglePlay 开发者账号,链接是 https://play.google.com/apps/publish/signup/
需要注意的是 在支付25美金的时候,Chrome 浏览器登录账号一定和你刚才注册的 GooglePlay 账号是同一个 否则可能会出现无法支付的问题
发布流程
进入平台后,见到右上角有一个创建应用,点击进入创建应用流程
在这个页面中会看到左边这几项有灰色对勾,点开应用版本上传打包好的应用,按照提示依次解决应用检查出现的问题
权限检查错误
您的应用的 APK 请求“android.permission.READ_PHONE_STATE”权限。应用若要在 APK 中使用这些权限,必须设置隐私权政策。 如果您的应用的目标受众群体包括未满 13 周岁的儿童,那就必须添加隐私权政策
如果您遇到该错误,可以用以下两种方式任选一种解决:
- 提供一个架设在海外服务器上的静态隐私声明页面,并在 GooglePlay 的并在商品详情选项最后填充该网页地址。
- 修改 Egret Native 生成的 AndroidManifest.xml 文件,具体修改方式请见后续小节:权限配置
64位应用错误
此版本不符合 Google Play 关于提供 64 位版本应用的规定 以下 APK 或 App Bundle 面向 64 位设备,但只有 32 位原生代码:1。 请向应用中添加 64 位和 32 位原生代码。您可以使用 Android App Bundle 发布格式来自动确保每种设备架构仅接收所需要的原生代码。这样可避免增加应用的总大小。
如果您遇到该错误,则需要在打包的时候补充64位的支持。请修改工程App对应build.gradle 文件,添加如下属性
{
ndk {
abiFilters 'armeabi-v7a','arm64-v8a'
}
}
上传完项目并校验通过,此时应用版本检查,右下角的发布按钮还是灰色不能发布,进入商品详情填充和内容分级阶段。
每满足一项内容,对应选项的灰色对勾会变成绿色,当所有带灰色对勾的选项变成绿色以后,此时重新点开应用版本查看对应的项目,发布按钮将会解锁点击进入审核期,如无意外项目将会正常发布。
附:权限配置
GooglePlay 权限检查相关内容
由于 Egret Native 1.0.1 以前的版本 egret.arr 中的 AndroidManifest.xml 中没有显式声明 targetSdkVersion ,这会导致工具会自动添加三个权限
- android.permission.READ_PHONE_STATE
- android.permission.WRITE_EXTERNAL_STORAGE
- android.permission.READ_EXTERNAL_STORAGE
解决方案:
- Egret Native 1.0.2 版本解决了这个问题,升级即可
- 开发者可以在AndroidManifest.xml 中添加相应权限的主动删除
<uses-permission
android:name="android.permission.READ_PHONE_STATE"
tools:node="remove" />
如遇到 tools 无法识别显示为红色,则: 需要在应用的 AndroidManifest.xml(不是上文中提到的 egret.arr 的 AndroidManifest.xml) 的跟节点中添加如下内容:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.egret.example"\>